<?php
// +----------------------------------------------------------------------
// | HisiPHP框架[基于ThinkPHP5.1开发]
// +----------------------------------------------------------------------
// | Copyright (c) 2016-2021 http://www.HisiPHP.com
// +----------------------------------------------------------------------
// | HisiPHP承诺基础框架永久免费开源，您可用于学习和商用，但必须保留软件版权信息。
// +----------------------------------------------------------------------
// | Author: 橘子俊 <364666827@qq.com>，开发者QQ群：50304283
// +----------------------------------------------------------------------

namespace app\common\service;

use app\common\service\Base;

class SystemUser extends Base
{

	/**
	 * 获取管理员角色
	 *
	 * @author KING
	 * @date 2020年7月22日
	 *
	 * @param integer $userId
	 * @return string
	 */
	public function getRoleNameByUserId($userId) {
		if (empty($userId)) return '';
		$list = db('system_role')->where('id', 'in', db('system_user_role')->where('user_id', $userId)->column('role_id'))->column('name');
		return implode(',', $list);
	}

	/**
	 * 获取键值对缓存
	 *
	 * @author KING
	 * @date 2020年6月9日
	 *
	 * @return array
	 */
	public function getKVCache($status=1) {
		return $this->getKVList($status);
	}

	/**
	 * 获取头像列表
	 *
	 * @author King
	 * @date 2020年9月17日
	 *
	 * @return array
	 */
	public function getAvatarKV($status=1) {
		if ($status !== null) $where['status'] = $status;
		$order = "id desc";
		return db('system_user')->where('avatar', '<>', '')->order($order)->column('avatar', 'id');
	}

	/**
	 * 获取单个用户头像
	 *
	 * @author King
	 * @date 2020年9月17日
	 *
	 * @param integer $id
	 * @return string
	 */
	public function getAvatarById($id) {
		return db('system_user')->where('id', '=', $id)->value('avatar', '');
	}

	/**
	 * 获取键值对缓存
	 *
	 * @author KING
	 * @date 2020年6月9日
	 *
	 * @return array
	 */
	public function getTagKVCache($tag) {
		if (empty($tag) || !config('?mp.'.$tag)) return [];
		$tagName = config('mp.'.$tag);
		$order = "id desc";
		return db('systemUser')->where('status', 1)->whereRaw("FIND_IN_SET('{$tagName}',`tags`)")->order($order)->column('nick', 'id');
	}

	/**
	 * 获取键值对缓存
	 *
	 * @author KING
	 * @date 2020年6月9日
	 *
	 * @return array
	 */
	public function getRoleKVCache($role) {
		if (empty($role) || !config('?mp.'.$role)) return [];
		$roleId = config('mp.'.$role);
		if (empty($roleId)) return [];
		$order = "id desc";
		return db('systemUser')->where('status', 1)->where('id', 'in', db('system_user_role')->where('role_id', '=', $roleId)->column('user_id'))->order($order)->column('nick', 'id');
	}


	/**
	 * 获取键值对列表
	 *
	 * @author KING
	 * @date 2020年6月9日
	 *
	 * @param integer $status
	 * @return array
	 */
	public function getKVList($status=1) {
		$where = [];
		if ($status !== null) $where['status'] = $status;
		$order = "id desc";
		return db('systemUser')->where($where)->order($order)->column('nick', 'id');
	}
	/**
	 * 获取键值对列表
	 *
	 * @author 飞燕
	 * @date 2020年9月28日
	 *
	 * @param integer $status
	 * @return array
	 */
	public function getVKList($status=1) {
		$where = [];
		if ($status !== null) $where['status'] = $status;
		$order = "id desc";
		return db('systemUser')->where($where)->order($order)->column('id','nick');
	}
}